#include<iostream>
#include<stdio.h>
#include<unistd.h>
#include<sys/types.h>
#include<sys/wait.h>
int main()
{
	pid_t id=fork();

	if(id==0)
	{
		char* const argv[]={(char*)"ls",(char*)"--color",(char*)"-a",(char*)"-l",nullptr};
		execv("/user/bin/ls",argv); //execv 从第二个参数后以指针数组形式传进来 

	//	sleep(3);
	//	//子进程
   	        execl("/bin/ls","ls","-l","--color","-a",nullptr);  //如果替换成功，子进程就会自己走去执行新的程序  失败exit(1)
		exit(1);
	}
	
	//父进程 要等待子进程
	pid_t rid=waitpid(id,nullptr,0);
	if(rid>0)
	{
		printf("等待子进程成功\n");
	}
//	printf("我是myexec,pid:%d\n",getpid());
//	execl("./other","other",nullptr);            //进程替换 用我的程序myproc.cc来替换other  替换后还是 打印pid 来检查是否创建新进程 -- 结果是pid相同没有创建新建曾
//	int n = execl("/bin/ls","ls","-l","-a",nullptr);
//	printf("excel return val:%d\n",n);
//	execl("/usr/bin/top","top",nullptr);
	return 0;
}
